#include <func.h>

//子进程结束，父进程通过wait拿子进程的退出码
int main()
{
    pid_t pid=fork();
    if(0==pid)//子进程
    {
        printf("I am child,%d ppid=%d\n",getpid(),getppid());
        sleep(1);
        return 1;
    }else{
        printf("I am parent %d\n",getpid());
        pid_t ret;
        int child_status;//存储子进程的情况
        ret=waitpid(pid,&child_status,WNOHANG);
        if(ret>0)
        {
            //child_status 存储两个内容，1 可以知道子进程是否崩溃 2 退出码
            if(WIFEXITED(child_status))
            {
                printf("子进程正常结束，exit code=%d\n",WEXITSTATUS(child_status));
            }else{
                printf("子进程崩溃了，exit code=%d\n",WEXITSTATUS(child_status));
            }
            printf("回收 %d 成功\n",ret);
        }else{
            printf("没有回收成功,ret=%d,干别的事\n",ret);

        }
        return 0;
    }
}